The present invention relates generally to infrared sensors that may be used for contactless temperature measurement of a remote object, and more particularly to an algorithm that efficiently and inexpensively converts infrared radiation received from the remote object to the temperature of the object without using a floating point microcontroller.
In “Prior Art” FIG. 1, a remote object 2 which has a surface temperature Tobj emits infrared radiation (IR) 3. An IR system 1 includes a conventional IR sensor 4 which generates a digital representation Vobj of the temperature of remote object 2 on a bus 5. Vobj is provided as an input to a microcontroller or processor 7. Microcontroller 7 executes a conventional conversion algorithm or a conventional software floating point conversion algorithm represented by various equations (that have been written by others) to represent the conversion of the voltage Vobj generated by IR sensor 4 to the temperature Tobj of the remote object 2. In some cases, the microcontroller has been combined into the same package with the IR sensor, IR sensor 4 and microcontroller 7 usually are on separate chips that are mounted in the same package or on the same print circuit board.
The conventional way to implement a mathematics algorithm for solving the conversion equations in software has been to express all numbers as binary coded decimal numbers and have the computer software take care of the complexity. However, if the conversion algorithm needs to be implemented in an integrated circuit, that approach would require a great deal of additional chip area and therefore would substantially increase its cost.
The floating-point numbers that computers utilize typically are “standardized”, for example by using 32-bit integers each including 24 bits representing the numerical value or “mantissa” of the number and 7 bits as the value of the exponent of the 24-bit numerical value; the one remaining bit is used for the algebraic sign of the 32-bit integer. Hardware and software floating-point arithmetic operates to keep track of the exponents of the 32-bit words as they are processed by various logical operators which perform addition, subtraction, multiplication, and division. Often the floating-point arithmetic capability is implemented in hardware so the microcontroller can execute the mathematical operations of a conversion algorithm very rapidly. Alternatively, if the floating point processing capability is implemented in software instead of hardware, the microcontroller assembly language is used for keeping track of the above-mentioned exponents of the 32-bit words as they undergo the various addition, subtraction, multiplication, and division operations. However, this approach results in much slower execution of the conversion algorithm and a large amount of programming code, which requires a large amount of memory.
A floating point implementation of the conversion algorithm may be possible/practical. However, a hardware implementation of a floating point math engine is costly in terms of die area, die cost, power consumption, and engineering design time, and may not be an option for a very low cost infrared sensor having a small die or chip size. In this case, a few alternatives may be considered. One alternative is to use floating point emulation, wherein a C/C++ compiler is utilized which can emulate floating point arithmetic in software that is executed in the microcontroller used to execute the conversion algorithm. Although floating point emulation has the advantages of providing very precise results and making it easy to modify the IR-to-temperature conversion algorithm if necessary, the amount of programming code is relatively large and the algorithm execution times are relatively slow. If a microcontroller which includes a hardware-implemented floating-point arithmetic capability is a justifiable option during the design phase and is used to perform the conversion of the IR sensor output to a digital representation of the temperature of the object being scanned, then use of a floating-point implementation of the conversion algorithm is usually preferable, because it results in an accurate conversion from infrared radiation intensity to the object temperature without the need for additional software code or execution time.
In a traditional fixed point implementation, all numbers are represented by integers and the decimal point is fixed in place. For example, a 32 bit register can be used to represent a number wherein the upper 16 bits represent whole numbers and the lower 16 bits represent fractional numbers. In such an arrangement, addition and subtraction are direct, while multiplication and division require the same frequent bit shifting to keep the decimal point “fixed” in the 16th bit position. This traditional implementation is not suitable for a typical IR conversion equation algorithm because of the needed range and accuracy. There are cases in which a very large number is multiplied by a very small number to produce a product in the middle range and other cases wherein two very small numbers are divided one into the other to produce a very large number. In short, there are just not enough bits in a 32 bit register to keep acceptable accuracy while nevertheless still using a fixed point implementation.
Whenever hardware or hard-wired fixed point mathematics computations are performed there is always a likelihood that the digital words being generated during execution of the algorithm will have more bits than the bit width (32 bits in this example) of the available registers. In floating-point mathematics, the exponent is accordingly modified and the out-of-range numerically significant bit portion of the out-of-range digital word is shifted so as to reduce the number of bits such that the entire digital word fits into the available 32-bit registers.
Thus, there is an unmet need for a IR-to-object temperature conversion algorithm which provides adequate accuracy of the measured object temperature for many applications without using the floating point algorithms that have been available in the prior art.
There also is an unmet need for a fast, low-cost IR-to-object fixed-point temperature conversion algorithm which provides adequate accuracy of the measured object temperature for many applications.
There also is an unmet need for a low-cost integrated circuit IR-to-object temperature conversion algorithm which provides adequate accuracy and very fast conversion of the power of infrared radiation to the temperature of the imaging object without substantially increasing the amount of required integrated circuit chip area.